/* 
 * Evo
 * 
 * Marcin Krupowicz (marcin@krupowicz.eu)
 * Barbara Szymanek (basia.szymanek@gmail.com)
 * 
 * January, 2009
 *
 */

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace Evo.Operators
{
    public interface IOperator<T> where T : IIndividual
    {
        Population<T> Execute(Population<T> population);
    }

    public interface IOperatorWithContribution<T> where T : IIndividual
    {
        Population<T> Execute(Population<T> population);
        double Contribution
        {
            get;
        }
        double Ratio
        {
            get;
            set;
        }

    }
        public interface IReplacementOperator<T> where T : IIndividual
        {
            Population<T> Replace(Population<T> parents, Population<T> children, Population<T> oldPopulation);
        }
    }
